#include <iostream>
// 饿汉模式的单例模式
class Singleton
{
private:
    static Singleton _eton;
    Singleton() : _data(99)
    {
        std::cout << "单例对象构造" << std::endl;
    }
    Singleton(const Singleton&) = delete; 
	Singleton& operator= (Singleton&) = delete;
    ~Singleton(){};                    
private:
    int _data;
public:
    static Singleton &getInstance()
    {
        return _eton;
    }
    int getData()
    {
        return _data;
    }
};
Singleton Singleton::_eton;

int main()
{
	Singleton::getInstance();
    //std::cout << Singleton::getInstance().getData() << std::endl;
    return 0;
}

// #include <iostream>
// class Singleton
// {
// private:
//     Singleton() : _data(99)
//     {
//         std::cout << "单例对象构造" << std::endl;
//     }
//     Singleton(const Singleton &) = delete; 
//     Singleton& operator= (Singleton&) = delete;
//     ~Singleton(){};                        
// private:
//     int _data; 
// public:  
//     static Singleton &getInstance()
//     {
//         static Singleton _eton;
//         return _eton;
//     }
//     int getData()
//     {
//         return _data;
//     }
// };
// int main()
// {
//     //std::cout << Singleton::getInstance().getData() << std::endl; 
//     return 0;
// }